The present invention relates to computerized generation and storage of electronic fonts, such fonts are suitable for typesetting, printing, CRT display and other forms of document presentation. Fonts of all types play a key aesthetic role in typesetting and printing. A history of the relationship of the typographic art to font generation is set forth in the book "POCKET PAL, A GRAPHIC ARTS PRODUCTION HANDBOOK" by International Paper Company, 220 E. 42nd Street, New York, N.Y., copyrights 1963-1979. This book traces typesetting and font control from handset type through automated mechanical typesetters, photo-composers, impact composers, and electronic fonts used with non-impact or impact document presentation devices. At an early stage of the typographic art, it was recognized that computerization of the composer input could provide significant advantages and efficiencies. For example, many composers receive their input from a digital computer which represents the graphics to be printed in terms of electrical signals. Generally, the early computer-driven composers required the digital computers to use so-called "coded data" wherein each graphic was represented by a byte or two bytes of code permutations. The composing machine interpreted the coded data to generate graphics in a visual form.
Examples of early computerized input to printers and composition devices include the output writer for COBOL, TEXT-90 (used on the IBM 7090 data processing machine), as well as PRINTEXT 360 and 370 computer programs. These computer programs generally operated with either photocomposers or electronic font-type composers. In particular, PRINTEXT 370 (IBM programming RPQ EF3414, bearing program number 5799-ALR, as described in IBM publication SH20-1794), allows the program a lot of flexibility in defining a font. A font, for purposes of PRINTEXT 370, includes a set of graphic characters, a corresponding set of widths for the characters, and a table to indicate how to output characters for a composer or typesetting device. That is, a directory is provided which translates coded data representative of graphic characters to addresses usable by the typesetting device for addressing stored graphic patterns corresponding to the graphics to be printed. In some machines, such stored graphic patterns are in the form of an optical array or mask, either circular or rectangular, which is movable such that a beam of light can be directed through the optical mask or character onto a photosensitive surface. The character set of PRINTEXT 370 allows a font to contain up to 255 characters. Each number, from 1 to 255, identifying a graphic pattern or character is called a font recode number. PRINTEXT 370 provides input keyboard tables which translate the keyboard coded data into the font recode number. In this manner, the internal text processing of PRINTEXT 370 is independent of keyboard table restrictions. Such input translation is useful in a multilingual environment.
PRINTEXT 370 also introduced a so-called logical font, the font processed by PRINTEXT 370. Correspondingly, the output device has a physical font, i.e., the actual shape of the graphics to be printed in accordance with the PRINTEXT 370 logical font. All of the logical and physical fonts are defined in so-called font tables. Additionally, for text output, a plurality of printer graphics tables are provided for translating the font recode number into device symbols. Remember, each character in the font had a font recode number defined in the keyboard table. That recode number is used to access or address the graphic representation of the character on the printer display or typesetter.
Accordingly, PRINTEXT 370 provides device independent text processing through the use of input translating tables called keyboard tables and output translating tables called printer graphics tables. The font management, other than selection and identification of the graphics character, is handled in the printer or composition machine. In general, in a photocomposer a change of font would require a change of the optical mask. In those machines using a CRT (cathode ray tube) as an output printing device, the electronic fonts are loaded automatically through an IBM 1130 system or through an IBM 360 computer into the storage of a photocomposer. In essence, PRINTEXT 370 (and its predecessor programs) is a formatting program, which formats the document to be presented, selects the fonts but does not directly manage a font graphic pattern. Further, PRINTEXT 370 requires that each font and each graphic character be explicitly defined in the keyboard and printer graphics tables. This relationship is true even though symbols can be shared in a printer through a plurality of diverse keyboards by mixing keyboard tables and printer graphics tables.
A more flexible formatter is found in the computer program entitled "Document Composition Facility" (DCF), IBM licensed program number 5748-XX9 and described in IBM publication SH20-9161. This computer program introduced the concept of generalized markup language tags for improving the human factors of using a formatter program. Such tag markups are described in IBM publication SH20-9188 and in an article by W. B. Adams entitled "Playing Tag With Automated Text Processing", published in PROCEEDINGS OF THE INTERNATIONAL TECHNICAL COMMUNICATIONS CONFERENCE, held by the Society of Technical Communications, Pittsburgh, Pa. in May 1981, on pp. A1-A7. The GML tag concept plus a to-be-described dual level control of font definition provided enhanced flexibility of DCF over the PRINTEXT 370 program. DCF employs control words for handling the various text-related functions. In particular, in the font control and implementation area for a given text processing job, a plurality of fonts can be defined in either one of two methods with the implementation or actuation of the fonts occurring subsequent to the definition and somewhat independent of the timing of the definition. In particular, three control words are of interest. The first is the "define font" control word ".DF" which defines so-called internal fonts (internal to DCF) which may include underscoring, overstriking, capitalization, font changes on electronic font document presentation devices, and pause for impact element changes, such as for an electronic typewriter. This DCF control word will be detailed later. During the text processing by DCF, a "begin font" control word ".BF" initiates or actuates a font by specifying the font in which the subsequent text is to be formatted. Additionally, the begin font control word causes DCF to save the current font identification before beginning formatting with a new font. This operation enables a subsequent control word to easily regain the previous font for continued text processing. If a given font has been actuated by .BF is to be changed, a previous font control word ".PF" restores the most-recently used font and eliminates the last-actuated font. As an example, one can imagine composing text in lower case letters. If a phrase is to be underscored, then a begin font control word causes the underscored version of the font to be used. Upon completion of the underscoring, a previous font control word causes return to the lower case font and eliminates the underscored font. The same technique can, of course, be applied to italics and other forms of font changes.
Returning to the define font control word, that control word includes an identifier which must be used by the later expected begin font control word to activate the font that is being currently defined. In the define font control word is a font-ID which specifies the internal DCF identifier of the font being defined by the define font control word. Other parameters are added to the font-ID to specify underscoring, upper case, both upper case and underscoring, stopping an output device such as the typewriter, for enabling font changing as by changing the type ball or font disk in a photocomposer, overstriking control, repeat controls, identification of the character or graphic to be used in the overstriking, selection of a box character set for drawing lines and creating boxes, identifying an external font to be used and the name of such external font. In DCF, coded fonts may be specified by the host processor through a so-called character (CHARS) option of a formatting command as described in the referenced IBM publications. The receipt of a define font control word completely replaces any previously defined font using the same identifier. This replacement is necessary to provide data integrity.
The begin font control word which activates a defined font, specifies the font-ID which refers to the font identified through a define font control word. If there is no correspondingly defined font, then the begin font control word becomes a no-operation control word, i.e., the current font used in the formatting is maintained. This two-level control enables a plurality of fonts to be defined for a text processing job with each of the defined fonts being actuated or implemented on a selective basis.
The "previous font" control word merely resumes the use of the previous font that was saved by the immediately preceding begin font control word. If there is no previously saved font, then the current font will remain effective, i.e., the previous font control word becomes a no operation. In DCF, a font save stack could save sixteen different font identifications.
All of the above-described flexibility and control for text processing requires that an operator or user explicitly specify the font-ID or other name of the font as used in the define font control word. Therefore, each begin font control word has to rigorously correspond to the defined font, insofar as identification is concerned, otherwise, the control word is ignored. This means that all of the definitions require a list of the parameters and a memorization of those parameters by the user. While the two-tiered control word approach provides good control, yet better human factors and device independence is required, particularly with the advent of the flexible all-points-addressable printers and the extensive use of cathode ray tubes for document presentation. The above-described DCF program handles coded data for formatting a document to be presented. DCF did not manipulate the actual graphics patterns nor provide control of same except by identifying same.
Electronic fonts provide greater flexibility in document presentation, as will become apparent. An example of a printer using electronic fonts is the IBM 3800 printer. This printer receives graphic characters as electrical signals representing rectangular arrays or raster patterns of dots to be printed. Such electrically represented raster patterns replace the optical disks of the photocomposition machines. A brief description of the IBM 3800 printing subsystem and its support programming is found in IBM Publication GC26-3829 (December 1975). The 3800 receives electronic fonts in the form of raster patterns with an associated character arrangement table. The character arrangement table is a directory for converting the coded data, which represents graphics characters, into addresses for addressing the respective raster patterns stored in the 3800.
The support programming for the 3800, which resides and is used by the host processor to which the 3800 is attached, includes an IEBIMAGE program. This program allows modification of the character arrangement table including the directory portion referring to the raster patterns such that the character arrangement table can refer to various sets of raster patterns. For example, a first set of raster patterns is provided for usage in the United States, which includes 64 characters. When the 3800 is used in European countries, a so-called World Trade National Graphics provides graphic patterns for adapting the character sets to the various countries of Europe. IEBIMAGE can modify the character arrangement table to substitute certain graphic characters for graphic characters in the original set. The graphics character patterns are stored on direct access storage devices in a data area called SYS1.IMAGELIB. With this type of storage, to provide a font for printing in English, the original character arrangement table is referenced; for printing in German, a different character arrangement table is referenced which substitutes certain other national use graphics for some of the English graphics for avoiding storing complete fonts for the various languages or font modifications to be used with the 3800 printer. The character arrangement table is a directory in the same sense that the printer graphics table of the PRINTEXT 370 is a directory to graphic symbols.
Even with all of the above-described efficient controls for text, particularly font data, for composing printers, such as usually employed in data processing environments, a need for greater human factors in the formatting area still exists for more efficient use of editor's time and greater device independence of the programmed formatter such that changes in devices for document presentation are not reflected into the application programs which generate text and graphics to be presented. These factors become more negative as the number of available fonts increase; with "electronic fonts" the number of available fonts can increase dramatically. Accordingly, it is desired to more efficiently and easily accommodate a large number of fonts.